import config from '@/config.js'
import {
	getStorage
} from '@/util/auth.js';
import store from '@/store/index.js'
export default function(parameter) {
	parameter.header = {};
	const token = getStorage('token');
	if (token) {
		parameter.header['Authori-zation'] = token;
	}
	parameter.url = config.requestUrl + parameter.url
	return new Promise((resolve, reject) => {
		uni.request({
			...parameter,
			success(e) {
				uni.hideLoading();
				if (e.statusCode != 200) {
					uni.showToast({
						title: '请求失败',
						icon: 'none',
						mask: true,
					})
					reject();
				} else {
					const response = e.data;
					switch (response.code) {
						case 200:
							resolve(response.data);
							break;
						case 401:
							uni.showToast({
								title: response.msg,
								icon: 'none',
								mask: true,
								duration: 2000,
								success: () => {
									store.dispatch('user/logout')
									setTimeout(() => {
										uni.reLaunch({
											url:'/pages/login/login'
										})
									}, 2000)
								}
							})
							break;
						case 403:
							uni.showToast({
								title: '暂无权限',
								icon: 'none',
								duration: 2000,
								mask: true,
								success() {
									setTimeout(() => {
										reject();
									}, 2000)
								}
							})
							break;
						case 500:
							uni.showToast({
								title: response.msg,
								icon: 'none',
								duration: 2000,
								mask: true,
								success() {
									setTimeout(() => {
										reject();
									}, 2000)
								}
							})
							break;
						default:
							uni.showToast({
								title: response.msg,
								icon: 'none',
								duration: 2000,
								mask: true,
								success() {
									setTimeout(() => {
										reject();
									}, 2000)
								}
							})
							break;
					}
				}
			},
			fail() {
				uni.hideLoading().then(() => {
					uni.showToast({
						title: '请求失败',
						icon: 'none',
						mask: true,
						duration: 2000,
						success() {
							setTimeout(() => {
								reject();
							}, 2000)
						}
					})
				})
			}
		})
	})
}